#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
using Cephei.QL;
using Cephei.QL.Instruments;
namespace Cephei.QL.Experimental
{
    /// <summary> 
	/// ! The payoff is a given fraction multiplied by the minimum between a given roof and the positive portfolio performance. If the performance of the portfolio is below then the payoff is null.  \warning This implementation still does not manage seasoned options.  \ingroup instruments
	/// </summary>
    [Guid ("1487E311-3F57-44c2-83D8-644F1E7A8C59"),ComVisible(true)]
	public interface IPagodaOption : Cephei.QL.Instruments.IMultiAssetOption
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
    }   

    /// <summary> 
	/// ! The payoff is a given fraction multiplied by the minimum between a given roof and the positive portfolio performance. If the performance of the portfolio is below then the payoff is null.  \warning This implementation still does not manage seasoned options.  \ingroup instruments Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IPagodaOption_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        /// <summary> 
		/// 
		/// </summary>
	    IPagodaOption Create (Cephei.Core.IVector<DateTime> fixingDates, Double roof, Double fraction, Cephei.QL.IPricingEngine QL_Pricer);
    }
}

